iT邦幫忙

DAY 13
3

強而有力的 Windows PowerShell系列 第 13

使用 Windows PowerShell 管理處理序

  • 分享至 

  • xImage
  •  

使用 Windows PowerShell 可以查詢執行中的處理序、啟動或停止處理序。
Windows PowerShell 提供一組與 Process 相關的 cmdlet 來管理處理序。

查詢處理序
查詢本機電腦上執行中的處理序,就直接執行 Get-Process 即可。有時候我們只要找出特定處理序的名稱或某個 ID 的處理序,可使用下面的指令:

# 查詢處理序名稱開頭是 ie、ex 跟 pow
Get-Process -Name ie*, ex*, pow*

# 因為 Name 參數是預設的屬性,所以也可改用這樣的方式
Get-Process ie*, ex*, pow*

# 查詢處理序 ID 為 1900
Get-Process -id 1900 

附註:
Get-Process 搭配 ComputerName 參數可查詢執行於遠端電腦上的處理序。

停止處理序
Stop-Process cmdlet 會使用 NameId 來指定所要停止執行於本機電腦上,一或多個處理序。請特別注意,是否可以真的停止處理序,要看您否有權限去執行該項工作以及該處理序是否允許被停止(因為有些處理序是不允許停止的)。

以下面的程式碼為例,會停止處理序名稱為 iexplore:

Stop-Process -Name iexplore

要停止處理序當然也可以使用 Name 參數搭配萬用字元,然而為了避免意外停止原本沒有打算要停止,卻但符合條件的某些處理序,就可再加上 Confirm 參數:

PS C:\> Stop-Process -Name ie*, ex*, pow* -Confirm

確認
確定要執行此動作?
在 "explorer (2464)" 目標上執行 "Stop-Process" 作業。
[Y] 是(Y)  [A] 全部皆是(A)  [N] 否(N)  [L] 全部皆否(L)  [S] 暫停(S)  [?] 說明 (預設值為 "Y"):
...

有時候,某些應用程式會停止回應,也可藉由判斷 Process 物件的 Responding 屬性值為 false,來找出不再有回應的處理序,然後將其停止:

Get-Process | Where-Object -FilterScript {$_.Responding -eq $false} | Stop-Process

啟動處理序
使用 Start-Process 可在本機電腦上執行處理序。可以輸入可執行檔、指令碼,或者是用電腦中程式可開啟的檔案(簡單的說法,就是 Start-Process 會啟動與該檔案關聯的程式)。以下面的程式碼來說,會啟動 WordPad,並將其開啟成最大化的模式:

Start-Process wordpad -WindowStyle Maximized

附註:
使用 Start-Process 執行本機處理序,不需要檢查要被執行的程式之目錄是否名列於 Path 環境變數裡。可參考先前討論過的:Windows PowerShell 基本操作 - 執行 Windows 的程式

下面的程式碼會使用與 jpg 關聯的程式來進行列印

Start-Process "C:\Users\Public\Pictures\Sample Pictures\Koala.jpg" -Verb Print

上一篇
Windows PowerShell 應用 - 收集電腦資料
下一篇
使用 Windows PowerShell 管理服務 - 取得服務狀態
系列文
強而有力的 Windows PowerShell33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言